<?php
    //上传配置
    $config = array(
        "uploadPath"=>"E:/phpweb/website/uploadfile/",                          //保存路径
        "fileType"=>array(".gif",".png",".jpg",".jpeg",".bmp"),   //文件允许格式
        "fileSize"=>2000                                          //文件大小限制，单位KB
    );
    
    //文件上传状态,当成功时返回SUCCESS，其余值将直接返回对应字符窜并显示在图片预览框，同时可以在前端页面通过回调函数获取对应字符窜
    $state = "SUCCESS";

    $title = htmlspecialchars($_POST['pictitle'], ENT_QUOTES);
    $path  = $config['uploadPath'];
    if(!file_exists($path)){
        mkdir("$path", 0777);
    }
	$year = MyDate("Y",time());
	$yd = MyDate("md",time());
	if(!is_dir($path.$year))
	{
		MkdirAll($path.$year);
	}
	if(!is_dir($path.$year.'/'.$yd))
	{
		MkdirAll($path.$year.'/'.$yd);
	}
	$path = $path.$year.'/'.$yd.'/';
    //格式验证
    $current_type = strtolower(strrchr($_FILES["picdata"]["name"], '.'));
    if(!in_array($current_type, $config['fileType'])){
        $state = "不支持的图片类型！";
    }
    //大小验证
    $file_size = 1024 * $config['fileSize'];
    if( $_FILES["picdata"]["size"] > $file_size ){
        $state = "图片大小超出限制！";
    }
    //保存图片
    if($state == "SUCCESS"){
        $tmp_file=$_FILES["picdata"]["name"];
        $file = $path.rand(1,10000).time().strrchr($tmp_file,'.');
        $result = move_uploaded_file($_FILES["picdata"]["tmp_name"],$file);
        if(!$result){
            $state = "图片保存失败！";
        }
    }
    //向浏览器返回数据json数据
    $file= str_replace('E:/phpweb/website/uploadfile/','',$file);  //为方便理解，替换掉所有类似../和./等相对路径标识
    echo "{'url':'".$file."','title':'".$title."','state':'".$state."'}";

/**
 * 返回格林威治标准时间
 * Enter description here ...
 * @param unknown_type $format
 * @param unknown_type $timest
 */
function MyDate($format='Y-m-d H:i:s',$timest=0)
{
	$addtime = 8 * 3600;
	if(empty($format))
	{
		$format = 'Y-m-d H:i:s';
	}
	return gmdate ($format,$timest+$addtime);
}

/**
 * 创建目录文件
 * Enter description here ...
 * @param unknown_type $truepath
 */
function MkdirAll($truepath)
{

	if(!file_exists($truepath))
	{
		mkdir($truepath,0755);
		chmod($truepath,0755);
		return true;
	}
	else
	{
		return true;
	}
}

?>

